!==================Programa que calcula e^x pela série==================

PROGRAM exer01

!=======================================================================

IMPLICIT NONE

!========================Declaração de variáveis========================

      REAL(8) :: pot, resul, resul_prev, termo
      INTEGER :: I

!=======================Inicializa as variáveis=========================

      pot = 0.0d0
      !Inicia resul = 1 pois é o x^0/0!
      resul = 1.0d0
      resul_prev = 0.0d0
      !Inicia termo = 1 pois o primeiro termo é só pot/I
      termo = 1.0d0
      I = 1

!========================Leitura da potência============================

      WRITE(*,*) 'Entre com x para calcularmos e^x'
      READ(*,*) pot
      
!====================Cálculo de e^x pela série==========================

      DO WHILE ((resul-resul_prev) > 0.00001d0)
            !Armazena o resultado anterior pra comparar no loop
            resul_prev = resul
            !Calcula o termo a ser somado
            termo = termo * pot/I
            !Calcula o valor da série
            resul = resul + termo
            I = I + 1
      END DO
      !Escreve a saída
      WRITE(*,*) 'O resultado da exponenciação é', resul

!=======================================================================

END PROGRAM exer01

!=======================================================================

